/*
*
网络编程知识块-文件
*/
package main

import (
	"fmt"
	"os"
)

func main() {
	//writeAndCreateFile()
	readFile()
}

/*
*
写文件
*/
func writeAndCreateFile() {
	file, err := os.OpenFile("aa.txt", os.O_APPEND, 0666)
	if err != nil {
		fmt.Println(err)
		return
	}
	//1.延迟关闭的两种不同写法，前者性能好，后者可以处理错误
	defer file.Close()
	defer func(file *os.File) {
		err := file.Close()
		if err != nil {
			fmt.Println(err)
		}
	}(file)
	_, err = file.WriteString("hello world")
	if err != nil {
		return
	}
}

/*
*
读文件
- open函数的应用
*/
func readFile() {
	file, err := os.OpenFile("aa.txt", os.O_RDONLY, 0666)
	if err != nil {
		fmt.Println(err)
	}
	content := make([]byte, 1024)
	read, err := file.Read(content)
	if err != nil {
		return
	}
	fmt.Println(read)
	fmt.Println(string(content[:read]))
}
